// 插件模块
import axios from 'axios'
import Nprogress from 'nprogress'

const MyHttpServer = {}

MyHttpServer.install = Vue => {
  axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'

  // axios 拦截器 统一添加头信息
  axios.interceptors.request.use(
    config => {
      // 添加 进度条提示开始
      Nprogress.start()
      // console.log(config)
      // 如果是非登录下的 axios 请求，加上 token
      if (config.url !== 'login') {
        const token = window.sessionStorage.getItem('token')
        // 请求头加上token
        config.headers.Authorization = token
      }
      return config
    },
    err => {
      return Promise.reject(err)
    }
  )

  // axios 拦截器 处理网络报错时的问题
  axios.interceptors.response.use(
    response => {
      // 系统报错

      // 添加 进度条提示结束
      Nprogress.done()

      if (response.data && response.data.err !== 0) {
      }

      return response
    },
    // 网络错误
    error => {
      console.dir(error)
      return Promise.resolve(error.response)
    }
  )

  // 4. 添加实例方法
  Vue.prototype.$http = axios
}

export default MyHttpServer
